1. Field of the Invention
This invention relates to timestamps in data records used to store trace events and more particularly relates to modifying trace records to make them compatible with a desired timestamp format found in log records.
2. Description of the Related Art
Many applications record operational events into various datasets or files. These files chronicle a sequence of historical events using a single record for each event. Various names are given to these files including log datasets, log files, trace datasets, trace files and so forth. To avoid confusion, this application uses the term chronicle dataset to reference all types of files that record a sequential listing of operational events. Chronicle datasets comprise log datasets and trace datasets as well as all other computer files which record operational events. Records within chronicle datasets are generally organized in chronological order.
Chronicle datasets comprise a sequence of records. Each record stores information about a single operational event. Each record contains a timestamp or is organized in such a way that a timestamp could be created for each record. The timestamp indicates the creation time of the record and/or the time that the operational event occurred.
A software developer may create a chronicle point in software code. A chronicle point is often termed a trace point or a log entry point. A chronicle point is the point in the software where the software creates a chronicle record. An operator my set various flags to activate and deactivate chronicle points.
Activation of all chronicle points creates a more extensive chronicle dataset. However, activation of all chronicle points may also retard the performance of the software and may cause the creation of an unmanageable number of chronicle records. In response to these and other problems, developers have created many distinct formats for chronicle records and chronicle datasets. In fact, many software applications create chronicle records for multiple chronicle datasets in multiple formats.
Computer operators, software developers, and service personnel use chronicle datasets to evaluate and improve the operation of applications. A developer may determine delay time for a specific code path by comparing timestamps for chronicle records created upon entry into the code path and upon exit from the code path. A service technician may determine appropriate tuning parameters based on an analysis of a chronicle dataset.
Service personnel use various service tools to assist them in analyzing chronicle datasets. Service personnel use service tools to sort chronicle records according to various criteria to make the chronicle records more meaningful. Service tools may sort chronicle records according to creation time or according to a sequence number in each chronicle record. Service tools may also sort and/or filter chronicle records according to record type, flow type, the host name that created the chronicle record, the application that created the chronicle record, etc.
Normally, a service tool only sorts or orders a single chronicle dataset containing similarly formatted chronicle records. However, service personnel may sometimes analyze chronicle records from different sources, which have varied formats. Although service tools exist which can merge multiple datasets with similarly formatted records, service tools cannot merge all record types and formats. Typically, service tools merge and sort chronicle records according to a timestamp field stored in each record. However, many chronicle records contain timestamps with distinct formats.
Some chronicle point types create chronicle records with a timestamp at the beginning of the record while other chronicle point types place the timestamp as field at the end of the chronicle record. In addition, distinct chronicle point types use distinct formats to store the time value in a timestamp field. Generally, differences in timestamp formats create most service tool merge problems. In order to analyze the performance of a software application properly, it may be desirable to use chronicle records from multiple chronicle datasets with incompatible formats. It would be very expensive to rewrite current service tools to handle all chronicle record formats.
From the foregoing discussion, it should be apparent that a need exists for an apparatus and system that facilitates analysis of multiple chronicle datasets with distinct record formats to allow service personnel and others to properly analyze chronicle datasets as a whole. Beneficially, such an apparatus and system would allow service personnel and others to correlate operational events and more quickly evaluate and improve software applications using existing service tools.